import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;


public class FileMoveScript {
    public static void main(String[] args) {
        // 源文件夹路径
        String sourceFolderPath = "C:/Users/77265/Desktop/测试/测试图片";
        File sourceFolder = new File(sourceFolderPath);

        if (!sourceFolder.exists() || !sourceFolder.isDirectory()) {
            System.out.println("源文件夹不存在或不是一个有效的目录。");
            return;
        }

        // 处理最优帧（高）
        processFolder(new File(sourceFolder, "最优帧（高）"), "高");//父目录的抽象路径名，子路径名
        // 处理最差帧（低）
        processFolder(new File(sourceFolder, "最差帧（低）"), "低");
        // 处理普通帧（中）
        processFolder(new File(sourceFolder, "普通帧（中）"), "中");
    }

    private static void mikDirectory(String Path) {
        File directory = new File(Path);
        if (!directory.exists()) {
            if (directory.mkdirs()) {
                System.out.println("文件夹创建成功: " + Path);
            } else {
                System.out.println("文件夹创建失败: " + Path);
            }
        } else {
            System.out.println("文件夹已存在: " + Path);
        }
    }


    private static void processFolder(File folder, String level) {
        if (!folder.exists() || !folder.isDirectory()) {
            return;
        }

        File[] files = folder.listFiles();//列出所有图片
        if (files != null) {

            //遍历图片
            for (File file : files) {
                //判断是否是文件，并且尾缀是否是为.jpg
                if (file.isFile() && file.getName().endsWith(".jpg")) {
                    // 解析图片的 ID——分成了四个部分
                    String[] parts = file.getName().split("_");
                    if (parts.length == 4) {
                        String id = parts[3].replace(".jpg", "");
                        String forwardPath = "C:/Users/77265/Desktop/测试/video/";
                        mikDirectory(forwardPath + id);


                        // 构建新的文件名
                        String newFileName = "pic_name" + "-" + level + ".jpg";
                        // 构建新的目录路径
                        Path newDirectory = Paths.get(forwardPath, id,"/");// get(String first, String... more)将路径字符串转换为对象

                        try {
                            // 创建新的目录
                            Files.createDirectories(newDirectory);
                            // 构建新的文件路径
                            Path newFilePath = newDirectory.resolve(newFileName);
                            // 复制文件
                            System.out.println(file.toPath());
                            Files.copy(file.toPath(), newFilePath);
                            System.out.println("复制成功，文件路径名称是" + newFilePath);
                        } catch (IOException e) {
                            throw new RuntimeException(e);
                        }
                    }
                }
            }
        }
    }
}
